/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.myapp.struts;

import java.util.List;
import javax.naming.NamingException;
import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import tpa.TablaPeriodica.Elemento;
import tpa.TablaPeriodica.SubClase;

/**
 *
 * @author leandro
 */
public class AgregarSubClaseActionForm extends org.apache.struts.action.ActionForm
{

    private String _valor;
    private Long _clasificacionId;
    private List _clasificaciones;
    private List _elementos;
    private Long[] _elementosElegidos;
    private String _status;
    private Long _subclaseId;

    /**
     * @return
     */
    public String getValor()
    {
        return _valor;
    }

    /**
     * @param string
     */
    public void setValor(String string)
    {
        _valor = string;
    }

    /**
     *
     */
    public AgregarSubClaseActionForm()
    {
        super();
        // TODO Auto-generated constructor stub
        _subclaseId = -1L;
        _elementos = null;
    }

    /**
     * This is the action called from the Struts framework.
     * @param mapping The ActionMapping used to select this instance.
     * @param request The HTTP Request we are processing.
     * @return
     */
    public ActionErrors validate(ActionMapping mapping, HttpServletRequest request)
    {
        ActionErrors errors = new ActionErrors();

        if (_valor == null || _valor.length() <= 0)
        {
            errors.add("_valor", new ActionMessage("error._field_required", "Valor SubClase"));
        }
        return errors;
    }

    public void reset(ActionMapping mapping, HttpServletRequest request)
    {
        try
        {
            if (_subclaseId <= 0L)
            {
                this._clasificacionId = 0L;
                this._status = "";
                this._valor = "";
                //this._subclaseId = 0L;
                this._elementosElegidos = new Long[0];
            }
        }
        catch (Exception ex)
        {
            this._status = ex.getMessage();
        }
    }

    /**
     * @return the _clasificacionId
     */
    public Long getClasificacionId()
    {
        return _clasificacionId;
    }

    /**
     * @param clasificacionId the _clasificacionId to set
     */
    public void setClasificacionId(Long clasificacionId)
    {
        this._clasificacionId = clasificacionId;
    }

    /**
     * @return the _clasificaciones
     */
    public List getClasificaciones()
    {
        return _clasificaciones;
    }

    public void setClasificaciones(List value)
    {
        _clasificaciones = value;
    }

    /**
     * @return the _elementos
     */
    public List getElementos()
    {
        return _elementos;
    }

    /**
     * @param elementos the _elementos to set
     */
    public void setElementos(List elementos)
    {
        this._elementos = elementos;
    }

    /**
     * @return the _status
     */
    public String getStatus()
    {
        return _status;
    }

    /**
     * @param status the _status to set
     */
    public void setStatus(String status)
    {
        this._status = status;
    }

    /**
     * @return the _elementosElegidos
     */
    public Long[] getElementosElegidos()
    {
        if (_elementosElegidos == null)
        {
            return new Long[0];
        }

        return _elementosElegidos;
    }

    /**
     * @param elementosElegidos the _elementosElegidos to set
     */
    public void setElementosElegidos(Long[] elementosElegidos)
    {
        this._elementosElegidos = elementosElegidos;
    }

    /**
     * @return the _subclaseId
     */
    public Long getSubClaseId()
    {
        return _subclaseId;
    }

    /**
     * @param subclaseId the _subclaseId to set
     */
    public void setSubClaseId(Long subclaseId)
    {
        this._subclaseId = subclaseId;
    }

    public boolean isElementSelected(Long nroAtomico)
    {
        for (Long currentNroAtomico : this.getElementosElegidos())
        {
            if (currentNroAtomico.equals(nroAtomico))
            {
                return true;
            }
        }

        return false;
    }
}
